#include "StdAfx.h"
#include "Sapo.h"
#include <sstream>

Sapo::Sapo(Textura* fond, double rad,double x,double y, string idn)
{

	this->posx = x;
	this->posy = y;
	this->fondo = fond;
	this->radio = rad;
	this->id = idn;

}

string Sapo::toString(){

	stringstream resultado;
	resultado << "SAPO: " << "ID: " <<	this->getid() << " Pos X: " << this->getPosX() << " Pos Y: " << this->getPosY() << " Radio: " <<this->getRadio() << std::endl;
	resultado << "Fondo Textura: " << this->getFondo()->GetIdTextura() <<std::endl;
	resultado << "Fondo Color: R= " << this->getFondo()->getRedChannel() << " G= " << this->getFondo()->getGreenChannel() << " B= "<< this->getFondo()->getBlueChannel()<< std::endl;
	resultado << "Linea Color: R= " << this->getFondo()->getRedChannelLinea() << " G= " << this->getFondo()->getGreenChannelLinea() << " B= "<< this->getFondo()->getBlueChannelLinea()<< std::endl;
	
	return resultado.str();
}

Sapo::~Sapo(void)
{
}


// Devuelve el screen con la imagen cargada
void Sapo::Dibujar(SDL_Surface *screen)
{
	SDL_Surface *image = this->getFondo()->getImagen();
	//Seteo el negro como color de fondo transparente para que dibuje solo el sapo
	SDL_SetColorKey(image, SDL_SRCCOLORKEY|SDL_RLEACCEL, SDL_MapRGB(image->format,0,0,0));
	
	SDL_Rect rect;
	rect.x = this->posXRelAPantalla(screen->h,screen->w) - (image->w/2); 
	rect.y = this->posYRelAPantalla(screen->h,screen->w) - (image->h/2);
	
	SDL_BlitSurface(image, 0, screen, &rect);
}

void Sapo::CargarTextura()
{
	this->fondo->cargar(this->getRadio());
	//this->fondo->rotar(0);
}


double Sapo::getNorte(void){

	return this->posy + this->radio;
}

double Sapo::getSur(void){

	return this->posy - this->radio;
}

double Sapo::getEste(void){
	
	return this->posx + this->radio ;
}

double Sapo::getOeste(void){

	return this->posx - this->radio ;
}
